// 加载环境变量
import dotenv from "dotenv";
dotenv.config();
const { PORT = 3000 } = process.env;
// 应用的入口文件
import express from "express";
import session from "express-session";

// 加载路由
import useRouter from "./router/user.js";
import todoRouter from "./router/todo.js";

// 创建一个express应用实例
const app = express();
// 静态文件服务
app.use(express.static("public"));
// 设置模板引擎
app.set("view engine", "ejs");
// 设置模板文件的目录
app.set("views", "./views");
// 解析请求体
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// 设置会话
app.set("trust proxy", 1); // 信任代理
app.use(
  session({
    secret: "my-secret-private-key",
    resave: false,
    saveUninitialized: true,
    cookie: {
      maxAge: 60 * 60 * 1000,
      httpOnly: false,
      secure: false,
    },
  })
);

// 注册路由
app.use("/api", useRouter);
app.use("/api", todoRouter);

// 全局错误处理
app.use((err, req, res, next) => {
  console.error(err);
  res
    .status(500)
    .json({ success: false, message: "服务器错误", details: err.message });
});

//
app.listen(PORT, (err) => {
  if (err) {
    console.error("Failed to start server:", err);
    return;
  }
  console.log(`Server running on port ${PORT}: http://localhost:${PORT}`);
});
